Webhooks 回调

为了便于客户系统或者第三方系统处理客户的交易信息,Ping++ 系统支持 Webhooks 功能,可以按照客户要求把特定的事件结果推送到指定的地址以便于客户做后续处理。目前支持的事件包括周期性交易汇总信息、支付结果、红包结果、企业转账结果和退款结果。 以下是关于接收 Webhooks 通知的说明:

  • Webhooks 是 Ping++ 和你服务器间的交互,相比页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的。
  • Webhooks 通知是以 POST 形式发送的 JSON ,放在请求的 body 里,内容是 Event 对象。
  • 你需要监听并接收 Webhooks 通知,接收到 Webhooks 后需要返回服务器状态码 2xx 表示接收成功,否则请返回状态码 500。
  • 若返回的服务器状态码不是 2xx,Ping++ 服务器会在 25 小时内向你的服务器不断重发通知,最多 10 次。Webhooks 首次是即时推送,重试通知时间间隔为 5s、10s、2min、5min、10min、30min、1h、2h、6h、15h,直到你正确回复状态 2xx 或者超过最大重发次数,Ping++ 将不再发送。

其中 Event 对象属性定义如下。

属性描述
id string事件对象 id ,由 Ping++ 生成,28 位长度字符串。
object string值为 "event"。
livemode boolean事件是否发生在生产环境。
created timestamp事件发生的时间。
pending_webhooks int推送未成功的 webhooks 数量。
type string事件类型,详见事件类型
request stringAPI Request ID。值 "null" 表示该事件不是由 API 请求触发的。
data hash绑定在事件上的数据对象,具体参考下表 data 参数说明。
data 参数描述
object hash
previous_attributes hash绑定对象属性变化之前的值。只有 *.updated 事件有这个属性。

示例对象

{
   "id": "evt_la06CoQAiPojSgJKe5gt3nwq",
   "created": 1427555016,
   "livemode": false,
   "type": "summary.weekly.available",
   "data": {
       "object": {
           "app_id": "app_b94eHsO1avrDyL8S",
           "object": "app_weekly_summary",
           "app_display_name": "App Name",
           "created": 1425830460,
           "summary_from": 1425225600,
           "summary_to": 1425830399,
           "charges_amount": 2000,
           "charges_count" : 200
       }
   },
   "object": "event",
   "pending_webhooks": 0,
   "request": null
}